/**
 * 
 */
package com.ms.service.module.baccarat.db;

import javax.persistence.Entity;
import javax.persistence.Table;

import com.xpec.c4.db.model.log.basic.BaseGameInfoLogModel;

/**
 * 百家樂個別玩家的遊戲記錄
 * 
 * @author TW15010
 */
@Entity
@org.hibernate.annotations.Entity(dynamicInsert = true, dynamicUpdate = true)
@Table(name = "bacr_playerlog")
@org.hibernate.annotations.Table(
		appliesTo = "bacr_playerlog", indexes =
		{
				@org.hibernate.annotations.Index(name = "IDX_PLAYER_ID", columnNames = { "playerGUID","eventDate"}),
//				@org.hibernate.annotations.Index(name = "IDX_ROUND", columnNames = { "roundNumber","tableId"}),
//				@org.hibernate.annotations.Index(name = "IDX_TABLE", columnNames = { "tableId","eventTime"}),
		}
)
public class BacrPlayerLogModel extends BaseGameInfoLogModel implements Cloneable {
	private static final long serialVersionUID = -9000320120744325932L;

	/**
	 * 牌桌 id
	 */
	private String tableId;

	/**
	 * 押閒金額
	 */
	private int betPlayer;

	/**
	 * 押莊金額
	 */
	private int betBanker;

	/**
	 * 押和金額
	 */
	private int betTie;

	/**
	 * 押閒對金額
	 */
	private int betPlayerPair;

	/**
	 * 押莊對金額
	 */
	private int betBankerPair;

	/**
	 * 牌局進行前金額
	 */
	private long beforeMoney;

	/**
	 * 牌局進行後金額
	 */
	private long afterMoney;

	/**
	 * 押閒輸贏
	 */
	private int gainPlayer;

	/**
	 * 押莊輸贏
	 */
	private int gainBanker;

	/**
	 * 押和輸贏
	 */
	private int gainTie;

	/**
	 * 押閒對輸贏
	 */
	private int gainPlayerPair;

	/**
	 * 押莊對輸贏
	 */
	private int gainBankerPair;

	/**
	 * 勝負結果
	 */
	private String result;

	/**
	 * 勝負結果 (閒對)
	 */
	private boolean rPlayerPair;

	/**
	 * 勝負結果 (莊對)
	 */
	private boolean rBankerPair;

	/**
	 * 活動連勝得分
	 */
	private long activityCombosScore;

	/**
	 * 玩家或小樂
	 */
	private int userType;

	/**
	 * 得分是否進保險箱
	 */
	private boolean sendToBank;

	/**
	 * log 在哪個事件寫入 {@link BacrPlayerLogSaveEvent}
	 */
	private int saveOnEvent;

	/**
	 * 複製一份自己
	 */
	public BacrPlayerLogModel clone() throws CloneNotSupportedException {
		return (BacrPlayerLogModel) super.clone();
	}

	public int getBetPlayer() {
		return betPlayer;
	}

	public void setBetPlayer(int betPlayer) {
		this.betPlayer = betPlayer;
	}

	public int getBetBanker() {
		return betBanker;
	}

	public void setBetBanker(int betBanker) {
		this.betBanker = betBanker;
	}

	public int getBetTie() {
		return betTie;
	}

	public void setBetTie(int betTie) {
		this.betTie = betTie;
	}

	public int getBetPlayerPair() {
		return betPlayerPair;
	}

	public void setBetPlayerPair(int betPlayerPair) {
		this.betPlayerPair = betPlayerPair;
	}

	public int getBetBankerPair() {
		return betBankerPair;
	}

	public void setBetBankerPair(int betBankerPair) {
		this.betBankerPair = betBankerPair;
	}

	public long getBeforeMoney() {
		return beforeMoney;
	}

	public void setBeforeMoney(long beforeMoney) {
		this.beforeMoney = beforeMoney;
	}

	public long getAfterMoney() {
		return afterMoney;
	}

	public void setAfterMoney(long afterMoney) {
		this.afterMoney = afterMoney;
	}

	public String getTableId() {
		return tableId;
	}

	public void setTableId(String tableId) {
		this.tableId = tableId;
	}

	public String getResult() {
		return result;
	}

	public void setResult(String result) {
		this.result = result;
	}

	public boolean isrPlayerPair() {
		return rPlayerPair;
	}

	public void setrPlayerPair(boolean rPlayerPair) {
		this.rPlayerPair = rPlayerPair;
	}

	public boolean isrBankerPair() {
		return rBankerPair;
	}

	public void setrBankerPair(boolean rBankerPair) {
		this.rBankerPair = rBankerPair;
	}

	public int getGainPlayer() {
		return gainPlayer;
	}

	public void setGainPlayer(int gainPlayer) {
		this.gainPlayer = gainPlayer;
	}

	public int getGainBanker() {
		return gainBanker;
	}

	public void setGainBanker(int gainBanker) {
		this.gainBanker = gainBanker;
	}

	public int getGainTie() {
		return gainTie;
	}

	public void setGainTie(int gainTie) {
		this.gainTie = gainTie;
	}

	public int getGainPlayerPair() {
		return gainPlayerPair;
	}

	public void setGainPlayerPair(int gainPlayerPair) {
		this.gainPlayerPair = gainPlayerPair;
	}

	public int getGainBankerPair() {
		return gainBankerPair;
	}

	public void setGainBankerPair(int gainBankerPair) {
		this.gainBankerPair = gainBankerPair;
	}

	public long getActivityCombosScore() {
		return activityCombosScore;
	}

	public void setActivityCombosScore(long activityCombosScore) {
		this.activityCombosScore = activityCombosScore;
	}

	public int getUserType() {
		return userType;
	}

	public void setUserType(int userType) {
		this.userType = userType;
	}

	public boolean isSendToBank() {
		return sendToBank;
	}

	public void setSendToBank(boolean sendToBank) {
		this.sendToBank = sendToBank;
	}

	public int getSaveOnEvent() {
		return saveOnEvent;
	}

	public void setSaveOnEvent(int saveOnEvent) {
		this.saveOnEvent = saveOnEvent;
	}
}
